const express = require('express');
const path = require('path');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');
// 创建服务器
const app = express();
// 静态资源访问
app.use(express.static(path.join(__dirname, 'public')));

// 处理post请求参数
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({ extended: false }));

//连接数据库
mongoose.connect('mongodb://todo:todo@localhost:27017/todo', { useNewUrlParser: true, useUnifiedTopology: true });

// 导入todo路由案例
const todoRouter = require('./route/todo');
// 当客户端的请求路径以/todo开头时
app.use('/todo', todoRouter);

// 01-ajax()方法
app.get('/base', (req, res) => {
    res.send({
        'name': 'zhangsan',
        'age': 20
    });
});
app.post('/base', (req, res) => {
    res.status(400).send({
        name: 'zhangsan',
        age: 20
    });
});

// 02-ajax传递参数
app.post('/default', (req, res) => {
    res.send({
        'name': 'lisi',
        'age': 20
    });
});

// 03-jsonp发送
app.get('/jsonp', (req, res) => {
    // res.jsonp({ name: 'zs', age: 20 });
    const result = req.query.cb;
    const data = result + '({name: "li", age: 20})';
    res.send(data);
});

// 获取用户列表信息
app.get('/users', (req, res) => {
    res.send('获取用户列表信息');
});

// 获取id为1的用户信息
app.get('/users/:id', (req, res) => {
    // 获取客户端传递过来的id
    const id = req.params.id;
    res.send(`获取id为${id}的用户信息`);
});

// 删除id为1的用户信息
app.delete('/users/:id', (req, res) => {
    // 获取客户端传递过来的id
    const id = req.params.id;
    res.send(`删除id为${id}的用户信息`);
});

// 获取id为1的用户信息
app.put('/users/:id', (req, res) => {
    // 获取客户端传递过来的id
    const id = req.params.id;
    res.send(`修改id为${id}的用户信息`);
});

// xml
app.get('/xml', (req, res) => {
    res.header('content-type', 'text/xml');
    res.send('<message><title>消息标题</title><content>消息内容</content></message>');
});







// 监听端口
app.listen(3000);
console.log('服务器启动成功');